Which communities have not been reached?




Summary map of beneficiary frequencies

LS0tDQp0aXRsZTogIk1hcHMgZm9yIDRXcyBwcmVzZW50YXRpb24iDQphdXRob3I6ICJCYXNlZCBvbiBOb3J0aHdlc3QgU3lyaWEgNFdzIGRhdGEiDQpkYXRlOiAgImByIGZvcm1hdChTeXMudGltZSgpLCAnJWQgJUIsICVZJylgIg0Kb3V0cHV0Og0KICBodG1sX2RvY3VtZW50Og0KICAgIGNvZGVfZG93bmxvYWQ6IHllcw0KICAgIHRoZW1lOiByZWFkYWJsZQ0KICAgIHRvYzogbm8NCiAgICB0b2NfZGVwdGg6IDQNCiAgICB0b2NfZmxvYXQ6IHllcw0KICAgIG51bWJlcl9zZWN0aW9uczogbm8NCiAgICBjb2xsYXBzZWQ6IG5vDQphbHdheXNfYWxsb3dfaHRtbDogeWVzDQotLS0NCg0KYGBgez1odG1sfQ0KPHN0eWxlPg0KICAgIGJvZHkgLm1haW4tY29udGFpbmVyIHsNCiAgICAgICAgbWF4LXdpZHRoOiAxMjgwcHg7DQogICAgfQ0KPC9zdHlsZT4NCmBgYA0KDQpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gRkFMU0UsIGZpZy53aWR0aD05LCBtZXNzYWdlID0gRkFMU0UsIHdhcm5pbmc9RkFMU0UsIGZpZy5yZXRpbmEgPSAyKQ0KbGlicmFyeSh0aWR5dmVyc2UpDQpsaWJyYXJ5KHJlYWR4bCkNCmxpYnJhcnkobHVicmlkYXRlKQ0KbGlicmFyeShzdHJpbmdpKQ0KbGlicmFyeShqYW5pdG9yKQ0KbGlicmFyeShzY2FsZXMpDQpsaWJyYXJ5KG1hZ3JpdHRyKQ0KbGlicmFyeSh2aXJpZGlzKQ0KbGlicmFyeShwYXRjaHdvcmspDQpsaWJyYXJ5KERUKQ0KbGlicmFyeShzZikNCmxpYnJhcnkocGxvdGx5KQ0KbGlicmFyeShmbGV4dGFibGUpDQpsaWJyYXJ5KGdncmVwZWwpDQpsaWJyYXJ5KHRpZHltb2RlbHMpDQpsaWJyYXJ5KHdpZHlyKQ0KbGlicmFyeSh0aWR5dGV4dCkNCmxpYnJhcnkodHJlZW1hcGlmeSkNCmxpYnJhcnkobWRlcHJpdikNCg0KdGhlbWVfc2V0KHRoZW1lX2xpZ2h0KCkpDQoNCiMgZGlzYWJsaW5nIHNjaWVudGlmaWMgbm90YXRpb24NCm9wdGlvbnMoc2NpcGVuID0gMTAwKQ0KDQojIEhvcGVmdWxseSB0aGlzIGFsbG93cyB0aGUgRFQgdG8gc2hvdyB1cA0Kb3B0aW9ucyhodG1sdG9vbHMucHJlc2VydmUucmF3ID0gRkFMU0UpDQoNCmAlb3V0JWAgPC0gTmVnYXRlKGAlaW4lYCkNCg0KIyBmdW5jdGlvbiBmb3IgdHJhbnNwb3NpbmcgZGYNCnRyYW5zcG9zZV9kZiA8LSBmdW5jdGlvbihkZikgew0KICB0X2RmIDwtIGRhdGEudGFibGU6OnRyYW5zcG9zZShkZikNCiAgY29sbmFtZXModF9kZikgPC0gcm93bmFtZXMoZGYpDQogIHJvd25hbWVzKHRfZGYpIDwtIGNvbG5hbWVzKGRmKQ0KICB0X2RmIDwtIHRfZGYgJT4lDQogICAgdGliYmxlOjpyb3duYW1lc190b19jb2x1bW4oLmRhdGEgPSAuKSAlPiUNCiAgICB0aWJibGU6OmFzX3RpYmJsZSguKQ0KICByZXR1cm4odF9kZikNCn0NCg0KIyBzY2FsaW5nIGZ1bmN0aW9ucyANCnJhbmdlMDEgPC0gZnVuY3Rpb24oeCl7KHgtbWluKHgpKS8obWF4KHgpLW1pbih4KSl9DQpyYW5nZV93bmEgPC0gZnVuY3Rpb24oeCl7KHgtbWluKHgsIG5hLnJtID0gVFJVRSkpLyhtYXgoeCwgbmEucm0gPSBUUlVFKS1taW4oeCwgbmEucm0gPSBUUlVFKSl9DQoNCiNtb2RlIGZ1bmN0aW9uIA0KbW9kZSA8LSBmdW5jdGlvbih4KSB7DQogIHV4IDwtIHVuaXF1ZSh4KQ0KICB1eFt3aGljaC5tYXgodGFidWxhdGUobWF0Y2goeCwgdXgpKSldDQp9DQoNCmBgYA0KDQpgYGB7ciBkYXRhfQ0KDQpwY29kZTNfc2hhcGUgPC0gDQogIHNmOjpzdF9yZWFkKCIuL2RhdGEvc3lyX2FkbWJuZGFfdW5jc191bm9jaGFfMjAyMDEyMTcvc3lyX2FkbWJuZGFfYWRtM191bmNzX3Vub2NoYV8yMDIwMTIxNy5zaHAiLCANCiAgICAgICAgICBxdWlldCA9IFRSVUUpDQoNCm53X3Bjb2RlMyA8LSByZWFkX2V4Y2VsKCIuL2RhdGEvMjAyM0hOT19QaU5fU2V2ZXJpdHlfZGV0YWlsZWRBb0lfRk9SU0hBUkUgMTUwMzIwMjMueGxzeCIsIHNraXAgPSAxLCANCiAgICAgICAgICAgICAgICAgIHNoZWV0ID0gMSkgJT4lDQogIGNsZWFuX25hbWVzKCkgJT4lIA0KICBmaWx0ZXIoYW9fYyA9PSAiTlciKSAlPiUgDQogIHB1bGwoYWRtaW4zcGNvZGUpDQoNCmxvY2F0aW9ucyA8LSByZWFkX2NzdigiLi9kYXRhL2xvY2F0aW9uc19hb2MuY3N2IikNCg0KcG9wIDwtIHJlYWRfZXhjZWwoIi4vZGF0YS9Qb3B1bGF0aW9uX0RhdGFfTWF5XzIwMjJfZmluYWxfMDExMjIwMjJfd2l0aF9TQURELnhsc3giLCANCiAgICAgICAgICAgc2hlZXQgPSA1LCANCiAgICAgICAgICAgc2tpcCA9IDIpICU+JSANCiAgY2xlYW5fbmFtZXMoKSAlPiUgDQogIHNlbGVjdChhZG1pbjBuYW1lX2VuOmxvbmdpdHVkZV94LCANCiAgICAgICAgIGZpbmFsX2VzdF9vZl9pZF9wc19tYXlfMjAyMjpmYW1pbHlfYXZnX3NpemVfdG90YWxfcG9wKSAlPiUgDQogIHJlbmFtZShpZHBzID0gZmluYWxfZXN0X29mX2lkX3BzX21heV8yMDIyLCANCiAgICAgICAgIHRvdGFsX3BvcCA9IGZpbmFsX2VzdF9vZl90b3RhbF9wb3BfbWF5XzIwMjIsIA0KICAgICAgICAgYXZnX2ZhbWlseV9zaXplID0gZmFtaWx5X2F2Z19zaXplX3RvdGFsX3BvcCkgJT4lIA0KICBmaWx0ZXIoYWRtaW4zcGNvZGUgJWluJSBud19wY29kZTMpDQoNCmNvbSA8LSByZWFkX2NzdigiLi9kYXRhL2NvbTIwMjMwNTIyLmNzdiIpICU+JSANCiAgZmlsdGVyKGJlbmVmaWNpYXJpZXMgPiAwKSAlPiUNCiAgbXV0YXRlKGNsdXN0ZXIgPSBpZmVsc2UoY2x1c3RlciA9PSAiQ2FzaCIsICJDV0ciLCBjbHVzdGVyKSkNCg0KbmFtZXNfZXEgPC0gYygNCiAgImRhdGUiLA0KICAiZ292ZXJub3JhdGUiLA0KICAiZGlzdHJpY3QiLA0KICAic3ViX2Rpc3RyaWN0IiwNCiAgImNvbW11bml0eSIsDQogICJhZG1pbjRwY29kZSIsDQogICJjYXN1YWx0aWVzIiwNCiAgImluanVyaWVzIiwNCiAgImNvbXBsZXRlbHlfZGVzdHJveWVkX2hvdXNlcyIsDQogICJkYW1hZ2VkX3VuaWhhYml0YWJsZV9ob3VzZXMiLA0KICAidGVtcG9yYXJ5X2FjY29tbW9kYXRpb25fY2VudHJlcyIsDQogICJpZHBzX2luX2FsbF9jZW50cmVzIiwNCiAgInNjaG9vbHNfYXNfYWNjb21vZGF0aW9uX2NlbnRyZXMiLA0KICAiaWRwc19pbl9zY2hvb2xzIiwNCiAgInRlbnRzX25lZWRlZCIsDQogICJibGFua2V0c19tYXR0cmVzc2VzX25lZWRlZCIsDQogICJ0ZW1wb3JhcnlfYWNjb21tb2RhdGlvbl9jZW50cmVzX2F2YWlsYWJsZSIsIA0KICAiYWNjZXNzaWJsZV9jaXZpbF9kZWZlbnNlIiwNCiAgImxhdHJpbmVzX2F2YWlsYWJsZSIsDQogICJtZWFsc19uZWVkZWRfcGVyX2RheSIsDQogICJuZWVkX2Jsb29kX2RvbmF0aW9ucyIsDQogICJoZWFsdGhfc2VydmljZXNfYXZhaWxhYmxlIiwNCiAgIm5lY2Vzc2FyeV9tZWRpY2FsX2VxdWlwbWVudCIsDQogICJydWJibGVfdm9sdW50ZWVycyIsDQogICJ0ZWxlY29tc19hdmFpbGFibGUiLA0KICAiZWxlY3RyaWNpdHlfYXZhaWxhYmxlIiwgDQogICJoZWF0aW5nX2Z1ZWxfbmVlZGVkIg0KKQ0KDQplcSA8LSByZWFkX2V4Y2VsKCIuL2RhdGEvc3lyaWEtZWFydGhxdWFrZS1pbXBhY3QtMjAtbWFyY2gtMjAyMy54bHN4IiwNCiAgICAgICAgICAgICAgICAgc2hlZXQgPSAiREFUQVNFVCIpICU+JSANCiAgc2V0TmFtZXMobmFtZXNfZXEpICU+JSANCiAgbGVmdF9qb2luKHBvcCAlPiUgDQogICAgICAgICAgICAgIHNlbGVjdChhZG1pbjRwY29kZSwgdG90YWxfcG9wKSwgDQogICAgICAgICAgICBieSA9ICJhZG1pbjRwY29kZSIpICU+JSANCiAgbXV0YXRlKHdvdW5kZWRfZGVhZCA9IGNhc3VhbHRpZXMgKyBpbmp1cmllcywNCiAgICAgICAgICAgICBkYW1hZ2VkX2hvdXNlcyA9IGNvbXBsZXRlbHlfZGVzdHJveWVkX2hvdXNlcyArIGRhbWFnZWRfdW5paGFiaXRhYmxlX2hvdXNlcykgJT4lIA0KICBtdXRhdGUod291bmRlZF9kZWFkXzEwMGsgPSB3b3VuZGVkX2RlYWQgLyB0b3RhbF9wb3AgKiAxMDAwMDAsIA0KICAgICAgICAgZGFtYWdlZF9ob3VzZXNfMTAwayA9IGRhbWFnZWRfaG91c2VzIC8gdG90YWxfcG9wICogMTAwMDAwKQ0KDQplcV9zY29yZSA8LSBlcSAlPiUNCiAgZmlsdGVyKCFpcy5pbmZpbml0ZSh3b3VuZGVkX2RlYWRfMTAwaykgJiAhaXMuaW5maW5pdGUoZGFtYWdlZF9ob3VzZXNfMTAwaykpICU+JSANCiAgbXV0YXRlX2F0KHZhcnMod291bmRlZF9kZWFkLCBkYW1hZ2VkX2hvdXNlcywgDQogICAgICAgICAgICAgICAgIHdvdW5kZWRfZGVhZF8xMDBrLCBkYW1hZ2VkX2hvdXNlc18xMDBrKSwgfiByYW5nZV93bmEoLikpICU+JSANCiAgcmVwbGFjZV9uYShsaXN0KHdvdW5kZWRfZGVhZF8xMDBrID0gMCwgDQogICAgICAgICAgICAgICAgICBkYW1hZ2VkX2hvdXNlc18xMDBrID0gMCwgDQogICAgICAgICAgICAgICAgICB3b3VuZGVkX2RlYWQgPSAwLCANCiAgICAgICAgICAgICAgICAgIGRhbWFnZWRfaG91c2VzID0gMCkpICU+JSAgDQogIG1kZXByaXYoYygid291bmRlZF9kZWFkIiwgImRhbWFnZWRfaG91c2VzIiwgDQogICAgICAgICAgICAid291bmRlZF9kZWFkXzEwMGsiLCAiZGFtYWdlZF9ob3VzZXNfMTAwayIpLCANCiAgICAgICAgICBtZXRob2QgPSAiYnYiLCBvdXRwdXQgPSAiYWxsIiwgDQogICAgICAgICAgc2NvcmVfaV9oZWFkaW5nID0gImVxX3Njb3JlIikNCg0KDQpgYGANCg0KIyBXaGljaCBjb21tdW5pdGllcyBoYXZlIG5vdCBiZWVuIHJlYWNoZWQ/IA0KDQpgYGB7cn0NCmlzX2NvdmVyZWRfbWFwIDwtIGNvbSAlPiUgDQogIGZpbHRlcihhY3Rpdml0eSAhPSAiSVNJTU0iICYgcHJvamVjdF9zdGF0dXMgJWluJSBjKCJDb21wbGV0ZWQiLCAiT25nb2luZyIpKSAlPiUgDQogIGdyb3VwX2J5KGFkbWluNHBjb2RlKSAlPiUgDQogIHN1bW1hcmlzZShiZW5lZmljaWFyaWVzID0gc3VtKGJlbmVmaWNpYXJpZXMsIG5hLnJtID0gVFJVRSksIA0KICAgICAgICAgICAgY2x1c3RlcnMgPSBuX2Rpc3RpbmN0KGNsdXN0ZXIpLCBuYS5ybSA9IFRSVUUpICU+JSANCiAgcmlnaHRfam9pbihwb3AgJT4lIHNlbGVjdCh0b3RhbF9wb3AsIGFkbWluNHBjb2RlLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGlzdHJpY3QgPSBhZG1pbjNuYW1lX2VuLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZG1pbjNwY29kZSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJub3JhdGUgPSBhZG1pbjFuYW1lX2VuLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tdW5pdHkgPSBsb2NhdGlvbl9uYW1lX2VuKSwgDQogICAgICAgICAgICBieSA9ICJhZG1pbjRwY29kZSIpICU+JQ0KICBsZWZ0X2pvaW4obG9jYXRpb25zICU+JSANCiAgICAgICAgICAgICAgc2VsZWN0KGxvbmdpdHVkZV94LCBsYXRpdHVkZV95LCBhZG1pbjRwY29kZSksIA0KICAgICAgICAgICAgYnkgPSAiYWRtaW40cGNvZGUiKSAlPiUgDQogIG11dGF0ZSh0b3RhbF9wb3AgPSBpZmVsc2UoYmVuZWZpY2lhcmllcyA+IDAgJiB0b3RhbF9wb3AgPT0gMCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcmllcywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfcG9wKSkgJT4lIA0KICBmaWx0ZXIodG90YWxfcG9wID4gMCkgJT4lIA0KICBtdXRhdGUoYmVuZWZpY2lhcmllcyA9IGlmZWxzZShiZW5lZmljaWFyaWVzID09IDAsIE5BX2ludGVnZXJfLCBiZW5lZmljaWFyaWVzKSwNCiAgICAgICAgIGlzX2NvdmVyZWQgPSBpZmVsc2UoIWlzLm5hKGJlbmVmaWNpYXJpZXMpLCAiWWVzIiwgIk5vIikpICU+JSANCiAgZmlsdGVyKHRvdGFsX3BvcCA+IDApICU+JSANCiAgcmlnaHRfam9pbihwY29kZTNfc2hhcGUsIA0KICAgICAgICAgICAgIGJ5ID0gYygiYWRtaW4zcGNvZGUiID0gIkFETTNfUENPREUiKSkgJT4lIA0KICBmaWx0ZXIoQURNMV9QQ09ERSAlaW4lIGMoIlNZMDIiLCAiU1kwNyIsICJTWTExIikgJiANCiAgICAgICAgICAgYWRtaW40cGNvZGUgJWluJSAocG9wICU+JSBwdWxsKGFkbWluNHBjb2RlKSkgJiANCiAgICAgICAgICAgYWRtaW4zcGNvZGUgIT0gIlNZMDIwNTAwIikgJT4lIA0KICBzdF9hc19zZigpICU+JSANCiAgZ2dwbG90KCkgKw0KICBnZW9tX3NmKHNpemUgPSAuMSwgY29sb3VyID0gImdyZXk3MCIpICsgDQogIGdlb21fcG9pbnQoYWVzKHNpemUgPSB0b3RhbF9wb3AsIGNvbG91ciA9IGlzX2NvdmVyZWQsIA0KICAgICAgICAgICAgICAgICB4ID0gbG9uZ2l0dWRlX3gsIHkgPSBsYXRpdHVkZV95LCANCiAgICAgICAgICAgICAgICAgdGV4dCA9IHBhc3RlMCgic3ViX2Rpc3RyaWN0OiAiLCBzdWJfZGlzdHJpY3QsICJcbiIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb21tdW5pdHk6ICIsIGNvbW11bml0eSwgIlxuIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFkbWluNHBjb2RlOiAiLCBhZG1pbjRwY29kZSwgIlxuIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgInBvcHVsYXRpb246ICIsIGZvcm1hdCh0b3RhbF9wb3AsIGJpZy5tYXJrID0gIiwiKSwgIlxuIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJlbl9mcmVxOiAiLCBmb3JtYXQoYmVuZWZpY2lhcmllcywgYmlnLm1hcmsgPSAiLCIpLCAiXG4iLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY2x1c3RlcnM6ICIsIGNsdXN0ZXJzKSksIA0KICAgICAgICAgICAgIGFscGhhID0gLjUpICsgDQogIHNjYWxlX3NpemVfY29udGludW91cyhyYW5nZSA9IGMoMC41LCA1KSkgKyANCiAgc2NhbGVfY29sb3VyX21hbnVhbCh2YWx1ZXMgPSBjKCIjY2M0Nzc4IiwgIiMwZDA4ODciKSkgKyANCiAgdGhlbWVfdm9pZCgpICsgDQogIHRoZW1lKHBsb3QuYmFja2dyb3VuZCA9IGVsZW1lbnRfcmVjdChmaWxsID0gIndoaXRlIiwgY29sb3VyID0gTkEpKSArIA0KICBndWlkZXMoc2l6ZSA9ICJub25lIikgKyANCiAgbGFicyh0aXRsZSA9ICJXaGljaCBjb21tdW5pdGllcyBoYXZlIG5vdCBiZWVuIHJlYWNoZWQ/IiwgDQogICAgICAgc3VidGl0bGUgPSAiU2l6ZSBzaG93cyB0b3RhbCBwb3B1bGF0aW9uOyBtb3VzZSBvdmVyIGZvciBkZXRhaWxzIiwgDQogICAgICAgY29sb3VyID0gIlJlYWNoZWQ/IikNCg0KZ2dwbG90bHkoaXNfY292ZXJlZF9tYXAsIHRvb2x0aXAgPSBjKCJ0ZXh0IikpICU+JSANCiAgcGxvdGx5OjpzdHlsZShob3Zlcm9uID0gInBvaW50IikgJT4lIA0KICBsYXlvdXQodGl0bGUgPSBsaXN0KHRleHQgPSBwYXN0ZTAoIldoaWNoIGNvbW11bml0aWVzIGhhdmUgbm90IGJlZW4gcmVhY2hlZD8iLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI8YnI+IiwgIjxzdXA+IiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAic2l6ZSBzaG93cyB0b3RhbCBwb3B1bGF0aW9uOyBtb3VzZSBvdmVyIGZvciBkZXRhaWxzIikpKQ0KDQpgYGANCg0KDQo8YnI+PGJyPjxicj4NCg0KIyBTdW1tYXJ5IG1hcCBvZiBiZW5lZmljaWFyeSBmcmVxdWVuY2llcw0KDQpgYGB7cn0NCnN1bW1hcnlfbWFwIDwtIGNvbSAlPiUgDQogIGZpbHRlcihhY3Rpdml0eSAhPSAiSVNJTU0iICYgcHJvamVjdF9zdGF0dXMgJWluJSBjKCJDb21wbGV0ZWQiLCAiT25nb2luZyIpKSAlPiUgDQogIGdyb3VwX2J5KGFkbWluNHBjb2RlKSAlPiUgDQogIHN1bW1hcmlzZShiZW5lZmljaWFyaWVzID0gc3VtKGJlbmVmaWNpYXJpZXMsIG5hLnJtID0gVFJVRSksIA0KICAgICAgICAgICAgY2x1c3RlcnMgPSBuX2Rpc3RpbmN0KGNsdXN0ZXIpLCBuYS5ybSA9IFRSVUUpICU+JSANCiAgcmlnaHRfam9pbihwb3AgJT4lIHNlbGVjdCh0b3RhbF9wb3AsIGFkbWluNHBjb2RlLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWJfZGlzdHJpY3QgPSBhZG1pbjNuYW1lX2VuLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhZG1pbjNwY29kZSwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgZ292ZXJub3JhdGUgPSBhZG1pbjFuYW1lX2VuLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21tdW5pdHkgPSBsb2NhdGlvbl9uYW1lX2VuKSwgDQogICAgICAgICAgICBieSA9ICJhZG1pbjRwY29kZSIpICU+JQ0KICBsZWZ0X2pvaW4obG9jYXRpb25zICU+JSANCiAgICAgICAgICAgICAgc2VsZWN0KGxvbmdpdHVkZV94LCBsYXRpdHVkZV95LCBhZG1pbjRwY29kZSksIA0KICAgICAgICAgICAgYnkgPSAiYWRtaW40cGNvZGUiKSAlPiUgDQogIGxlZnRfam9pbihlcV9zY29yZSRkYXRhICU+JSANCiAgICAgICAgICAgICAgc2VsZWN0KGVxX3Njb3JlLCBhZG1pbjRwY29kZSksIA0KICAgICAgICAgICAgYnkgPSAiYWRtaW40cGNvZGUiKSAlPiUgDQogIG11dGF0ZSh0b3RhbF9wb3AgPSBpZmVsc2UoYmVuZWZpY2lhcmllcyA+IDAgJiB0b3RhbF9wb3AgPT0gMCwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgYmVuZWZpY2lhcmllcywgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgdG90YWxfcG9wKSkgJT4lIA0KICBmaWx0ZXIodG90YWxfcG9wID4gMCkgJT4lIA0KICBtdXRhdGUoYmVuZWZpY2lhcmllcyA9IGlmZWxzZShpcy5uYShiZW5lZmljaWFyaWVzKSwgMCwgYmVuZWZpY2lhcmllcyksDQogICAgICAgICBwY19yZWFjaGVkID0gYmVuZWZpY2lhcmllcyAvIHRvdGFsX3BvcCwgDQogICAgICAgICBwY19yZWFjaGVkX3NjYWxlID0gaWZlbHNlKHBjX3JlYWNoZWQgPiAxMCwgMTAsIHBjX3JlYWNoZWQpKSAlPiUgDQogIHJpZ2h0X2pvaW4ocGNvZGUzX3NoYXBlLCANCiAgICAgICAgICAgICBieSA9IGMoImFkbWluM3Bjb2RlIiA9ICJBRE0zX1BDT0RFIikpICU+JSANCiAgZmlsdGVyKEFETTFfUENPREUgJWluJSBjKCJTWTAyIiwgIlNZMDciLCAiU1kxMSIpICYgDQogICAgICAgICAgIGFkbWluNHBjb2RlICVpbiUgKHBvcCAlPiUgcHVsbChhZG1pbjRwY29kZSkpICYgDQogICAgICAgICAgIGFkbWluM3Bjb2RlICE9ICJTWTAyMDUwMCIpICU+JSANCiAgc3RfYXNfc2YoKSAlPiUgDQogIGdncGxvdCgpICsNCiAgZ2VvbV9zZihzaXplID0gLjEsIGNvbG91ciA9ICJncmV5NzAiKSArIA0KICBnZW9tX3BvaW50KGFlcyhzaXplID0gYmVuZWZpY2lhcmllcywgY29sb3VyID0gcGNfcmVhY2hlZF9zY2FsZSwgDQogICAgICAgICAgICAgICAgIHggPSBsb25naXR1ZGVfeCwgeSA9IGxhdGl0dWRlX3ksIA0KICAgICAgICAgICAgICAgICB0ZXh0ID0gcGFzdGUwKCJzdWJfZGlzdHJpY3Q6ICIsIHN1Yl9kaXN0cmljdCwgIlxuIiwgDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbW11bml0eTogIiwgY29tbXVuaXR5LCAiXG4iLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYWRtaW40cGNvZGU6ICIsIGFkbWluNHBjb2RlLCAiXG4iLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAicG9wdWxhdGlvbjogIiwgZm9ybWF0KHRvdGFsX3BvcCwgYmlnLm1hcmsgPSAiLCIpLCAiXG4iLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiYmVuX2ZyZXE6ICIsIGZvcm1hdChiZW5lZmljaWFyaWVzLCBiaWcubWFyayA9ICIsIiksICJcbiIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjbHVzdGVyczogIiwgY2x1c3RlcnMsICJcbiIsICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJXJlYWNoZWQ6ICIsIHJvdW5kKHBjX3JlYWNoZWQgKiAxMDAsIGRpZ2l0cyA9IDIpLCAiJSIpKSwgDQogICAgICAgICAgICAgYWxwaGEgPSAuNSkgKyANCiAgc2NhbGVfc2l6ZV9jb250aW51b3VzKHJhbmdlID0gYygwLjUsIDUpKSArIA0KICAjIHNldHRpbmcgTkEgdmFsdWUgd2lsbCBub3QgZG8gYW55dGhpbmcgaWYgdGhleSB3b24ndCBldmVuIGFwcGVhcg0KICBzY2FsZV9jb2xvdXJfdmlyaWRpc19jKG9wdGlvbiA9ICJwbGFzbWEiLCBuYS52YWx1ZSA9ICJncmV5MjUiLCANCiAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbHMgPSBwZXJjZW50KSArIA0KICB0aGVtZV92b2lkKCkgKyANCiAgdGhlbWUocGxvdC5iYWNrZ3JvdW5kID0gZWxlbWVudF9yZWN0KGZpbGwgPSAid2hpdGUiLCBjb2xvdXIgPSBOQSkpICsgDQogIGd1aWRlcyhzaXplID0gIm5vbmUiKSArIA0KICBsYWJzKHRpdGxlID0gIk1hcCBvZiBiZW5lZmljaWFyeSBmcmVxdWVuY2llcyIsIA0KICAgICAgIHN1YnRpdGxlID0gIlNpemUgc2hvd3MgYmVuZWZpY2lhcnkgZnJlcXVlbmNpZXM7IG1vdXNlIG92ZXIgZm9yIGRldGFpbHMiLCANCiAgICAgICBjb2xvdXIgPSAiJSByZWFjaGVkIikNCg0KZ2dwbG90bHkoc3VtbWFyeV9tYXAsIHRvb2x0aXAgPSBjKCJ0ZXh0IikpICU+JSANCiAgcGxvdGx5OjpzdHlsZShob3Zlcm9uID0gInBvaW50IikgJT4lIA0KICBsYXlvdXQodGl0bGUgPSBsaXN0KHRleHQgPSBwYXN0ZTAoIk1hcCBvZiBiZW5lZmljaWFyeSBmcmVxdWVuY2llcyIsIA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxicj4iLCAiPHN1cD4iLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJTaXplIHNob3dzIGJlbmVmaWNpYXJ5IGZyZXF1ZW5jaWVzOyBtb3VzZSBvdmVyIGZvciBkZXRhaWxzIikpKQ0KDQoNCmBgYA0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg0KDQoNCg==